Skip to content
This repository has been archived by the owner on May 1, 2024. It is now read-only.

Add support for .NET 6 & 7 Android workloads #41

Merged
merged 1 commit into from
Aug 25, 2022

Conversation

jonathanpeppers
Copy link
Member

@jonathanpeppers jonathanpeppers commented Aug 25, 2022

Context: dotnet/android#7261 (comment)

To make .NET 6 builds work from a .NET 7 SDK, we are changing:

Microsoft.Android.Sdk

To:

Microsoft.Android.Sdk.net6
Microsoft.Android.Sdk.net7

To deal with this in Xamarin.Legacy.Sdk, by default it will check for:

<!--
  if we are not .NET 7 use .NET 6, so legacy or net6.0 will import
  !$([MSBuild]::VersionEquals($(TargetFrameworkVersion), '7.0'))
-->
<Import Sdk="Microsoft.Android.Sdk.net6" ... />
<!--
  import .NET 7 if we are .NET 7
  $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '7.0'))
-->
<Import Sdk="Microsoft.Android.Sdk.net7" ... />

To get the old behavior, you can set:

<UseMicrosoftAndroidSdk>true</UseMicrosoftAndroidSdk>

Or to explicitly select, you can set one of:

<UseMicrosoftAndroidSdkNet6>true</UseMicrosoftAndroidSdkNet6>
<UseMicrosoftAndroidSdkNet7>true</UseMicrosoftAndroidSdkNet7>

In a future change, we can make .NET 7 the default, but likely only
after it is released GA.

Context: dotnet/android#7261 (comment)

To make .NET 6 builds work from a .NET 7 SDK, we are changing:

    Microsoft.Android.Sdk

To:

    Microsoft.Android.Sdk.net6
    Microsoft.Android.Sdk.net7

To deal with this in Xamarin.Legacy.Sdk, by default it will check for:

    <!--
      if we are not .NET 7 use .NET 6, so legacy or net6.0 will import
      !$([MSBuild]::VersionEquals($(TargetFrameworkVersion), '7.0'))
    -->
    <Import Sdk="Microsoft.Android.Sdk.net6" ... />
    <!--
      import .NET 7 if we are .NET 7
      $([MSBuild]::VersionEquals($(TargetFrameworkVersion), '7.0'))
    -->
    <Import Sdk="Microsoft.Android.Sdk.net7" ... />

To get the old behavior, you can set:

    <UseMicrosoftAndroidSdk>true</UseMicrosoftAndroidSdk>

Or to explicitly select, you can set one of:

    <UseMicrosoftAndroidSdkNet6>true</UseMicrosoftAndroidSdkNet6>
    <UseMicrosoftAndroidSdkNet7>true</UseMicrosoftAndroidSdkNet7>

In a future change, we can make .NET 7 the default, but likely only
after it is released GA.
@jonathanpeppers
Copy link
Member Author

I'm going to ignore the GitHub actions failure for now:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Mac/Xamarin.Shared.targets(1425,3): error : Info.plist not found. 

It must be something about an updated Xamarin.Mac?

@jonathanpeppers jonathanpeppers merged commit 39e597e into main Aug 25, 2022
@jonathanpeppers jonathanpeppers deleted the net7-multitargeting branch August 25, 2022 14:50
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants